#include <stdio.h>
#include <signal.h>

// 保持内存的可见性，每次做检测必须从内存里拿
volatile int flags = 0;

void handler(int signo)
{
    printf("更改flags: 0->1\n");
    flags = 1;
}

int main()
{
    signal(2, handler);
    while (!flags);
    printf("进程是正常退出的！\n");

    return 0;
}
